Storage apparatuses are for providing data storage areas to software such as applications operating in an external apparatus such as a host computer. In general, multiple storage devices are managed in RAID (Redundant Array of Inexpensive Disks) system in order to add redundancy to stored data. For example, the storage apparatus as hardware has multiple hard disk drives disposed in array (Hard Disk Drive, hereinafter referred to as “HDD”) and a disk controller for controlling the operation of HDD.
In general, the storage apparatus needs to be manufactured in such a manner that: a storage capacity expected to be needed in the future is set in advance at the designing stage; and storage devices such as HDDs which may not be actually used at the beginning of the operation are incorporated in advance and have to be allocated as storage areas to logical volumes to be used by an external apparatus. This produces a problem of increasing the cost burden on a storage user. As a solution to this problem, a technique referred to as a thin provisioning has begun to be introduced to the storage apparatus.
The thin provisioning technique provides a storage area called a pool area in a storage apparatus, and allows multiple host computers to share multiple virtual volumes through the pool area. A virtual volume is a logical volume provided to a host computer. The virtual volume is different from a general logical volume in that the general logical volume is associated with a logical storage area provided by a storage device, whereas the virtual volume is associated with a logical storage area in the pool area. When the host computer actually writes data to the virtual volume, a logical storage area with a storage capacity needed for wiring data is dynamically allocated to the host computer. The pool area is an aggregate of the logical storage areas including one or more RAID groups. The allocation units of storage capacities to be allocated to the host computers are not necessarily in a predetermined size, but may be changed based on the specifications of the storage apparatuses or the user settings for the operations of the storage apparatuses. In the following description, the unit storage area to be allocated to an external apparatus such as a host computer in the virtual volume is referred to as a “segment.”
A storage apparatus with a virtualized storage area provides a host computer with a virtual volume which is a virtualized logical volume, and the virtual volume further includes virtualized logical segments. Each logical segment is associated with a physical segment provided by any of the storage devices mounted in the storage apparatus. In such a virtualized storage apparatus, the host computer accesses, via the virtual segment, the physical segment associated with the virtual segment by accessing the virtual segment associated with the logical segment in the pool area. This mechanism can bring an advantage of eliminating the necessity to mount an excessive storage device on the storage apparatus in advance, through the excessive storage device should be otherwise provided in consideration of future expected usage. The following patent literatures disclose an existing technique relating to the storage virtualization.
PTL 1 discloses the technique intended to improve cost effectiveness of a storage apparatus by using the thin provisioning technique with application of a management concept of tiers formed of multiple different storage devices. In this technique, the storage apparatus is generally configured to include a storage device including a high-speed and expensive storage device such as a semiconductor storage device (Solid State Drive, hereinafter referred to as “SSD”), a storage device including a middle-speed and middle expensive storage device such as SAS (Serial Attached SCSI) HDD, and a storage device having a low-speed, large capacity, and inexpensive storage device such as SATA (Serial Advanced Technology Attachment) HDD in combination. Pool areas in tiers are formed of all the storage devices and data is stored in a proper tier according to the access status or required performance. The tier management of data is performed in segment units of the thin provisioning technique or in any other units such as storage area units in specific size. For the access status to the storage area, access frequency information is generally managed in segment units.
PTL 2 discloses data deduplication technique in a storage apparatus. This technique improves the capacity efficiency of the storage apparatus by: detecting same data from data stored in the storage apparatus by using a technique such as a hash value comparison; when data blocks storing the same data are discovered, while leaving a specific one of the data blocks while releasing the other redundant data block; and then, changing the link destination of the virtual storage area linked with the redundant data block on the virtual volume so that the left specific data block will be referred to. Alternatively, upon receipt of a data write instruction from a host computer or the like, it is determined whether or not there is a redundant data block storing the same data among data already stored in the storage apparatus. The data redundancy determination is performed in units of data blocks having a certain size, that is, in units of segments. The segment size is, for example, a dynamic capacity allocation size, a fixed size, or variable length size in the thin provisioning technique. The data redundancy determination may be performed in file units.
Moreover, as the redundant data management technique for improving the capacity efficiency of the storage apparatus, there are techniques like a snapshot technique in addition to the deduplication technique, in which a copy of a virtual volume is created and a logical segment of the copy of the virtual volume is set to refer to the physical segment to which the copy source virtual volume also refers. With this configuration, the real physical data needs to be managed only for the copy source volume data and thus the capacity efficiency of the storage apparatus can be improved. Then, when a write command is generated anew by the host computer, a physical segment is reserved in another area and the reference destination of the logical segment on the virtual volume is changed to the newly-created physical segment.